Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
Jquery
https://jquery.com/download/
CDN : jsDelivr CDN
https://www.jsdelivr.com/package/npm/jquery
https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js
Database Table
CREATE TABLE `member` (
`id` int(11) NOT NULL,
`name` varchar(150) NOT NULL,
`email` varchar(150) NOT NULL,
`phone` varchar(150) NOT NULL,
`photo` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | //index.php <?php include 'action.php' ; ?> <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>PHP MySQLi CRUD Prepared Statement with upload image</title> <link rel= "stylesheet" href= "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" > <link rel= "stylesheet" type= "text/css" href= "https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css" /> <script type= "text/javascript" src= "https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js" ></script> </head> <body> <div class = "container" > <div class = "row justify-content-center" > <div class = "col-md-10" > <h3 class = "text-center text-dark mt-2" >PHP MySQLi CRUD Prepared Statement with upload image</h3> <hr> <?php if (isset( $_SESSION [ 'response' ])) { ?> <div class = "alert alert-<?php echo $_SESSION['res_type']; ?> alert-dismissible text-center" > <b><?php echo $_SESSION [ 'response' ]; ?></b> </div> <?php } unset( $_SESSION [ 'response' ]); ?> </div> </div> <div class = "row" > <div class = "col-md-4" > <div class = "card" > <div class = "card-header" > Add Record </div> <div class = "card-body" > <form action= "action.php" method= "post" enctype= "multipart/form-data" > <input type= "hidden" name= "id" value= "<?php echo $id; ?>" > <div class = "mb-3" > <input type= "text" name= "name" value= "<?php echo $name; ?>" class = "form-control" placeholder= "Enter name" required> </div> <div class = "mb-3" > <input type= "email" name= "email" value= "<?php echo $email; ?>" class = "form-control" placeholder= "Enter e-mail" required> </div> <div class = "mb-3" > <input type= "tel" name= "phone" value= "<?php echo $phone; ?>" class = "form-control" placeholder= "Enter phone" required> </div> <div class = "mb-3" > <input type= "hidden" name= "oldimage" value= "<?php echo $photo; ?>" > <input type= "file" name= "image" class = "custom-file" > <img src= "<?php echo $photo; ?>" width= "120" class = "img-thumbnail" > </div> <div class = "mb-3" > <?php if ( $update == true) { ?> <input type= "submit" name= "update" class = "btn btn-success btn-block" value= "Update Record" > <?php } else { ?> <input type= "submit" name= "add" class = "btn btn-primary btn-block" value= "Add Record" > <?php } ?> </div> </form> </div> </div> </div> <div class = "col-md-8" > <?php $query = 'SELECT * FROM member' ; $stmt = $conn ->prepare( $query ); $stmt ->execute(); $result = $stmt ->get_result(); ?> <div class = "card" > <div class = "card-header" > Record </div> <div class = "card-body" > <table class = "table table-bordered table-striped table-hover" id= "data-table" > <thead> <tr> <th>#</th> <th>Image</th> <th>Name</th> <th>Email</th> <th>Phone</th> <th>Action</th> </tr> </thead> <tbody> <?php while ( $row = $result ->fetch_assoc()) { ?> <tr> <td><?php echo $row [ 'id' ]; ?></td> <td><img src= "<?php echo $row['photo']; ?>" width= "25" ></td> <td><?php echo $row [ 'name' ]; ?></td> <td><?php echo $row [ 'email' ]; ?></td> <td><?php echo $row [ 'phone' ]; ?></td> <td> <a href= "details.php?details=<?php echo $row['id']; ?>" class = "btn btn-primary btn-sm" >Details</a> | <a href= "action.php?delete=<?php echo $row['id']; ?>" class = "btn btn-danger btn-sm" onclick= "return confirm('Do you want delete this record?');" > Delete </a> | <a href= "index.php?edit=<?php echo $row['id']; ?>" class = "btn btn-info btn-sm" >Edit</a> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </div> </div> <script type= "text/javascript" > $(document).ready( function () { $( '#data-table' ).DataTable({ paging: true }); }); </script> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | //config.php <?php const DBHOST = 'localhost' ; const DBUSER = 'root' ; const DBPASS = '' ; const DBNAME = 'projectdb' ; $conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME); if ( $conn ->connect_error) { die ( 'Could not connect to the database!' . $conn ->connect_error); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | //action.php <?php session_start(); include 'config.php' ; $update =false; $id = "" ; $name = "" ; $email = "" ; $phone = "" ; $photo = "" ; if (isset( $_POST [ 'add' ])){ $name = $_POST [ 'name' ]; $email = $_POST [ 'email' ]; $phone = $_POST [ 'phone' ]; $photo = $_FILES [ 'image' ][ 'name' ]; $upload = "uploads/" . $photo ; $query = "INSERT INTO member(name,email,phone,photo)VALUES(?,?,?,?)" ; $stmt = $conn ->prepare( $query ); $stmt ->bind_param( "ssss" , $name , $email , $phone , $upload ); $stmt ->execute(); move_uploaded_file( $_FILES [ 'image' ][ 'tmp_name' ], $upload ); header( 'location:index.php' ); $_SESSION [ 'response' ]= "Successfully Inserted to the database!" ; $_SESSION [ 'res_type' ]= "success" ; } if (isset( $_GET [ 'delete' ])){ $id = $_GET [ 'delete' ]; $sql = "SELECT photo FROM member WHERE id=?" ; $stmt2 = $conn ->prepare( $sql ); $stmt2 ->bind_param( "i" , $id ); $stmt2 ->execute(); $result2 = $stmt2 ->get_result(); $row = $result2 ->fetch_assoc(); $imagepath = $row [ 'photo' ]; unlink( $imagepath ); $query = "DELETE FROM member WHERE id=?" ; $stmt = $conn ->prepare( $query ); $stmt ->bind_param( "i" , $id ); $stmt ->execute(); header( 'location:index.php' ); $_SESSION [ 'response' ]= "Successfully Deleted!" ; $_SESSION [ 'res_type' ]= "danger" ; } if (isset( $_GET [ 'edit' ])){ $id = $_GET [ 'edit' ]; $query = "SELECT * FROM member WHERE id=?" ; $stmt = $conn ->prepare( $query ); $stmt ->bind_param( "i" , $id ); $stmt ->execute(); $result = $stmt ->get_result(); $row = $result ->fetch_assoc(); $id = $row [ 'id' ]; $name = $row [ 'name' ]; $email = $row [ 'email' ]; $phone = $row [ 'phone' ]; $photo = $row [ 'photo' ]; $update =true; } if (isset( $_POST [ 'update' ])){ $id = $_POST [ 'id' ]; $name = $_POST [ 'name' ]; $email = $_POST [ 'email' ]; $phone = $_POST [ 'phone' ]; $oldimage = $_POST [ 'oldimage' ]; if (isset( $_FILES [ 'image' ][ 'name' ])&&( $_FILES [ 'image' ][ 'name' ]!= "" )){ $newimage = "uploads/" . $_FILES [ 'image' ][ 'name' ]; unlink( $oldimage ); move_uploaded_file( $_FILES [ 'image' ][ 'tmp_name' ], $newimage ); } else { $newimage = $oldimage ; } $query = "UPDATE member SET name=?,email=?,phone=?,photo=? WHERE id=?" ; $stmt = $conn ->prepare( $query ); $stmt ->bind_param( "ssssi" , $name , $email , $phone , $newimage , $id ); $stmt ->execute(); $_SESSION [ 'response' ]= "Updated Successfully!" ; $_SESSION [ 'res_type' ]= "primary" ; header( 'location:index.php' ); } if (isset( $_GET [ 'details' ])){ $id = $_GET [ 'details' ]; $query = "SELECT * FROM member WHERE id=?" ; $stmt = $conn ->prepare( $query ); $stmt ->bind_param( "i" , $id ); $stmt ->execute(); $result = $stmt ->get_result(); $row = $result ->fetch_assoc(); $vid = $row [ 'id' ]; $vname = $row [ 'name' ]; $vemail = $row [ 'email' ]; $vphone = $row [ 'phone' ]; $vphoto = $row [ 'photo' ]; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | //details.php <?php include 'action.php' ; ?> <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>PHP MySQLi CRUD Prepared Statement with upload image</title> <link rel= "stylesheet" href= "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" > </head> <body> <div class = "container" > <div class = "row justify-content-center" > <div class = "col-md-10" > <h3 class = "text-center text-dark mt-2" >PHP MySQLi CRUD Prepared Statement with upload image</h3> <hr> <?php if (isset( $_SESSION [ 'response' ])) { ?> <div class = "alert alert-<?php echo $_SESSION['res_type']; ?> alert-dismissible text-center" > <b><?php echo $_SESSION [ 'response' ]; ?></b> </div> <?php } unset( $_SESSION [ 'response' ]); ?> </div> </div> <div class = "row justify-content-center" > <div class = "col-md-6 mt-3 bg-info p-4 rounded" > <h2 class = "bg-light p-2 rounded text-center text-dark" >ID : <?php echo $vid ; ?></h2> <div class = "text-center" > <img src= "<?php echo $vphoto; ?>" width= "300" class = "img-thumbnail" > </div> <h4 class = "text-light" >Name : <?php echo $vname ; ?></h4> <h4 class = "text-light" >Email : <?php echo $vemail ; ?></h4> <h4 class = "text-light" >Phone : <?php echo $vphone ; ?></h4> </div> </div> </div> </body> </html> |